﻿// B. Hamon Odyssey.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
/*
https://codeforces.com/problemset/problem/1847/B

乔纳森正在与迪奥的吸血鬼爪牙作战。他们共有 n 个，力量分别为 a1、a2......、an。

乔纳森意识到，任何这样的组的强度都在于其最薄弱的环节，即比特 AND。更正式地说，组（l,r）的强度等级定义为
f(l,r)=al&al+1&al+2&...&ar.这里，&表示位和运算。

因为乔纳森希望快速打败吸血鬼的爪牙，所以他要把吸血鬼分成连续的小组，这样每个吸血鬼正好在一个小组里，而且各小组的力量之和最小。在所有划分吸血鬼的方法中，他希望找到分组数最多的方法。

给定 n 个吸血鬼各自的实力，在所有可能的吸血鬼划分方法中，找出实力总和最小的最大分组数。

输入
第一行包含一个整数 t（1≤t≤104）--测试用例数。测试用例说明如下。

每个测试用例的第一行包含一个整数 n（1≤n≤2⋅105）--吸血鬼的数量。

每个测试用例的第二行包含 n 个整数 a1,a2,...,an（0≤ai≤109）--每个吸血鬼的个体强度。

所有测试用例中 n 的总和不超过 2⋅105。

输出
对于每个测试用例，输出一个整数 - 在所有可能的方法中，以最小的强度总和划分吸血鬼的最大组数。

InputCopy
3
3
1 2 3
5
2 3 1 5 2
4
5 7 12 6
OutputCopy
1
2
1

注释
在第一个测试案例中，最佳方法是把所有 n 个吸血鬼作为一组。因此，f(1,3)=1&2&3=0。

在第二个测试案例中，最佳方法是将 (2,3,1) 和 (5,2) 分成两组。So, f(1,3)+f(4,5)=(2&3&1)+(5&2)=0+0=0


*/
#include <iostream>
#include <cstring>



using namespace std;

int T;
int n;
const int N = 200010;
int a[N];


void solve() {
	cin >> n;
	memset(a, 0, sizeof a);
	int sum = 0; int ans = 0;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
		if (sum == 0) sum = a[i];
		sum = sum & a[i];
		if (sum == 0) {
			ans++;
		}
	}
	if (ans == 0)ans = 1;

	cout << ans << endl;

	return;
}

int main()
{
	cin >> T;
	while (T--) {
		solve();
	}

	return 0;
}

 